<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    
    //подключаем плагины
    protected function _initPlugins() {
        $front = Zend_Controller_Front::getInstance();
        $front->registerPlugin(new Application_Plugin_Acl());
    }
    
    protected function _initTranslate()
    {
        $translate = new Zend_Translate('Gettext', APPLICATION_PATH . '/languages',
            null, array('scan' => Zend_Translate::LOCALE_FILENAME));
        
        
        // если язык указан явно в URL после адреса сайта
        if (preg_match("/^\/([a-zA-Z]{2})($|\/)/", $_SERVER['REQUEST_URI'], $matches)) {
            $lang = $matches[1];
        }
        else {
            //определение языка браузера юзера
            $locale = new Zend_Locale(Zend_Locale::BROWSER);
            $lang = $locale->getLanguage();    
       }
            
        // проверка доступности сайта на данном языке
        if (!$translate->isAvailable($lang)) {
             // язык по умолчанию
             $lang = 'en';
        }
            
        // установка выбранного языка
        $translate->setLocale($lang);
        
        $this->bootstrap('FrontController');
        $front = $this->getResource('FrontController');
        $front->setBaseUrl('/' . $lang . '/');        

        //сохранение в реестре экземпляра Zend_Translate для дальнейшего использования
        Zend_Registry::set('Zend_Translate', $translate); 
        $locale = $translate->getLocale();        
        $source = APPLICATION_PATH . '/languages/'.$locale.'.mo';        
        $translate->addTranslation($source, $locale);        
    }

}

